package com.easy.cloud.web.service.upms.biz.service;

import com.easy.cloud.web.service.upms.api.dto.RoleDTO;
import com.easy.cloud.web.service.upms.api.dto.RoleQueryDTO;
import com.easy.cloud.web.service.upms.api.vo.RoleVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * Role interface
 *
 * @author Fast Java
 * @date 2023-08-03 14:32:52
 */
public interface IRoleService {

    /**
     * 新增数据
     *
     * @param roleDTO 保存参数
     * @return com.easy.cloud.web.service.upms.api.vo.RoleVO
     */
    RoleVO save(RoleDTO roleDTO);

    /**
     * 更新数据，默认全量更新
     *
     * @param roleDTO 保存参数
     * @return com.easy.cloud.web.service.upms.api.vo.RoleVO
     */
    RoleVO update(RoleDTO roleDTO);

    /**
     * 根据ID删除数据
     *
     * @param roleId 对象ID
     * @return java.lang.Boolean
     */
    Boolean removeById(String roleId);

    /**
     * 根据ID获取详情
     *
     * @param roleId 对象ID
     * @return java.lang.Boolean
     */
    RoleVO detailById(String roleId);

    /**
     * 根据条件获取列表数据
     *
     * @param roleQueryDTO 查询参数
     * @return List<com.easy.cloud.web.service.upms.api.vo.RoleVO> 返回列表数据
     */
    List<RoleVO> list(RoleQueryDTO roleQueryDTO);

    /**
     * 根据角色编码获取角色信息
     *
     * @param roleCodes 角色编码
     * @return java.util.List<com.easy.cloud.web.service.upms.api.vo.RoleVO>
     */
    List<RoleVO> findAllByCodes(List<String> roleCodes);

    /**
     * 根据条件获取分页数据
     *
     * @param roleQueryDTO 查询参数
     * @return org.springframework.data.domain.Page<com.easy.cloud.web.service.upms.api.vo.RoleVO>
     */
    Page<RoleVO> page(RoleQueryDTO roleQueryDTO);
}